package com.example.ymm.modules1.service.ms;

import com.example.ymm.base.BaseService;
import com.example.ymm.model.TableList;
import com.example.ymm.model.YmPageDto;
import com.example.ymm.modules1.entity.my.ms.MsMouldMain;
import com.example.ymm.modules1.service.dto.ImportMsOrderExcelDto;
import com.example.ymm.modules1.service.dto.ms.MsMouldMainQueryCriteria;

import java.util.List;
import java.util.Map;

public interface MsMouldMainService extends BaseService<MsMouldMain> {


    TableList<MsMouldMain> list(MsMouldMainQueryCriteria criteria, YmPageDto ymPage);

    List<MsMouldMain> queryAll(MsMouldMainQueryCriteria criteria);


    void addMould(MsMouldMain mouldMain);

    void editMould(MsMouldMain mouldMain);

    /**
     * 查询是否符合条件
     * @param mouldMain
     * @param is_send
     * 0不符合 1 符合采购单 2符合外协加工单
     * @return
     */
    Integer getIsReturn(MsMouldMain mouldMain,int is_send);


    MsMouldMain detailMould(String mouldMainId);

    void deleteMould(String mouldMainId);

    /**
     * 发送通知
     */
    void syncNoticeAllMain();


    /**
     * 通过订单号查询费用明细数据
     * @param orderNo
     * @return
     */
    MsMouldMain findOrderNo(String orderNo);


    List<String> getOrderNos(MsMouldMainQueryCriteria criteria);

    List<Map<String,Object>> importMsOrder(ImportMsOrderExcelDto dto);

    //获取需要发送的费用数据
    List<MsMouldMain> getNoticeAllMain();

    /**
     * 获取我的待办
     * @return
     */
    Integer getMyWaitList();


    /**
     * 自动根据虚拟件采购单创建模具费用
     * 同步一次未生成的虚拟件采购单
     */
    void autoCreateOrderFn();

}
